package net.ojbk.study.curriculumDesign.service.cilentservicer;

import net.ojbk.study.curriculumDesign.beans.cilentservicer.Chat;
import net.ojbk.study.curriculumDesign.beans.cilentservicer.ChatMessage;
import net.ojbk.study.curriculumDesign.beans.usermanage.User;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: twobox
 * Date: 2019/1/6
 * Time: 19:22
 * Description: 客户模块 的 通讯模块。包括发送信息，请求连接等功能
 */
public interface ICustomerCommService {

    /**
     * 请求服务
     * @param user
     * @return 返回会话对象
     */
    public Chat requestService(User user) throws Exception;

    /**
     * 获取所有聊天记录
     * @param chat 聊天会话对象
     */
    public List<ChatMessage> getMsgList(Chat chat) throws Exception;

//    /**
//     * 获取未读聊天记录
//     * @param chat 聊天会话对象
//     * @return 获取New消息队列中的消息返回后，重新 NEW 一个空队列即可！！
//     */

    /**
     * 返回一条新消息
     * @param chat
     * @return 弹出队首消息
     */
    public ChatMessage getNewMessage(Chat chat) throws Exception;

    /**
     * 发送一条消息给客服
     * @param chat
     * @param newMsg
     */
    public void sendMessage(Chat chat, ChatMessage newMsg) throws Exception;

    /**
     * 断开连接，还未评论。
     * @param chat
     */
    public void catService(Chat chat) throws Exception;

    /**
     * 用户进行评分，并结束掉此会话！！
     * @param chat
     * @param score
     */
    public void endChat(Chat chat, double score) throws Exception;
}
